Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / tests / backend / test_web_audio_bridge_hypothesis.py

Displaying Raw • Download


tests/backend/test_web_audio_bridge_hypothesis.py v4.6.0-rc.2 (7bbe9846) Text, 4.07 KB

T8b949e# SPDX-License-Identifier: 0BSD

T8b949e"""Property-based tests for Web Audio bridge PCM paths (robustness, no uncaught exceptions)."""

Tff7b72import T7ee787asyncio
Tff7b72from T7ee787unittestT7ee787.T7ee787mock Tff7b72import Te6edf3MagicMockTb4b4b4, Te6edf3patch

Tff7b72import T7ee787numpy Tff7b72as T7ee787np
Tff7b72import T7ee787pytest
Tff7b72from T7ee787hypothesis Tff7b72import Te6edf3givenTb4b4b4, Te6edf3settings
Tff7b72from T7ee787hypothesis Tff7b72import Te6edf3strategies Tff7b72as Te6edf3st

Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787web_audio_bridge Tff7b72import Tb4b4b4(
Te6edf3WebAudioBridgeTb4b4b4,
Te6edf3WebAudioSinkTb4b4b4,
Te6edf3WebAudioSourceTb4b4b4,
Tb4b4b4)


Tff7b72class T56d364_DummySinkTb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframes Tff7b72= Tb4b4b4[Tb4b4b4]

Tff7b72def Td2a8ffcan_receiveTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3from_sourceTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72True

Tff7b72def Td2a8ffhandle_frameTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3frameTb4b4b4, Te6edf3sourceTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3frameTb4b4b4)


Tf0883e@settingsTb4b4b4(Te6edf3max_examplesTff7b72=T79c0ff200Tb4b4b4, Te6edf3deadlineTff7b72=Tff7b72NoneTb4b4b4)
Tf0883e@givenTb4b4b4(Te6edf3pcmTff7b72=Te6edf3stTff7b72.Td2a8ffbinaryTb4b4b4(Te6edf3max_sizeTff7b72=T79c0ff8192Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_web_audio_source_push_pcm_never_propagatesTb4b4b4(Te6edf3pcmTb4b4b4)Tb4b4b4:
Te6edf3sink Tff7b72= Te6edf3_DummySinkTb4b4b4(Tb4b4b4)
Te6edf3src Tff7b72= Te6edf3WebAudioSourceTb4b4b4(Te6edf3target_frame_msTff7b72=T79c0ff60Tb4b4b4, Te6edf3sinkTff7b72=Te6edf3sinkTb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(Ta5d6ff"Ta5d6ffmeshchatx.src.backend.web_audio_bridge.RNS.logTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3srcTff7b72.Td2a8ffpush_pcmTb4b4b4(Te6edf3pcmTb4b4b4)


Tf0883e@settingsTb4b4b4(Te6edf3max_examplesTff7b72=T79c0ff120Tb4b4b4, Te6edf3deadlineTff7b72=Tff7b72NoneTb4b4b4)
Tf0883e@givenTb4b4b4(Te6edf3pcmTff7b72=Te6edf3stTff7b72.Td2a8ffbinaryTb4b4b4(Te6edf3max_sizeTff7b72=T79c0ff8192Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_web_audio_bridge_push_client_frame_never_propagatesTb4b4b4(Te6edf3pcmTb4b4b4)Tb4b4b4:
Te6edf3bridge Tff7b72= Te6edf3WebAudioBridgeTb4b4b4(Te6edf3MagicMockTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3MagicMockTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3sink Tff7b72= Te6edf3_DummySinkTb4b4b4(Tb4b4b4)
Te6edf3bridgeTff7b72.Td2a8fftx_source Tff7b72= Te6edf3WebAudioSourceTb4b4b4(Te6edf3target_frame_msTff7b72=T79c0ff60Tb4b4b4, Te6edf3sinkTff7b72=Te6edf3sinkTb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(Ta5d6ff"Ta5d6ffmeshchatx.src.backend.web_audio_bridge.RNS.logTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3bridgeTff7b72.Td2a8ffpush_client_frameTb4b4b4(Te6edf3pcmTb4b4b4)


Tf0883e@settingsTb4b4b4(Te6edf3max_examplesTff7b72=T79c0ff120Tb4b4b4, Te6edf3deadlineTff7b72=Tff7b72NoneTb4b4b4)
Tf0883e@givenTb4b4b4(Te6edf3pcmTff7b72=Te6edf3stTff7b72.Td2a8ffbinaryTb4b4b4(Te6edf3max_sizeTff7b72=T79c0ff8192Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_web_audio_source_push_pcm_sink_can_receive_false_never_propagatesTb4b4b4(Te6edf3pcmTb4b4b4)Tb4b4b4:
Te6edf3sink Tff7b72= Te6edf3MagicMockTb4b4b4(Tb4b4b4)
Te6edf3sinkTff7b72.Td2a8ffcan_receiveTff7b72.Td2a8ffreturn_value Tff7b72= Tff7b72False
Te6edf3src Tff7b72= Te6edf3WebAudioSourceTb4b4b4(Te6edf3target_frame_msTff7b72=T79c0ff60Tb4b4b4, Te6edf3sinkTff7b72=Te6edf3sinkTb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(Ta5d6ff"Ta5d6ffmeshchatx.src.backend.web_audio_bridge.RNS.logTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3srcTff7b72.Td2a8ffpush_pcmTb4b4b4(Te6edf3pcmTb4b4b4)
Te6edf3sinkTff7b72.Td2a8ffhandle_frameTff7b72.Td2a8ffassert_not_calledTb4b4b4(Tb4b4b4)


Tf0883e@settingsTb4b4b4(Te6edf3max_examplesTff7b72=T79c0ff150Tb4b4b4, Te6edf3deadlineTff7b72=Tff7b72NoneTb4b4b4)
Tf0883e@givenTb4b4b4(
Te6edf3valuesTff7b72=Te6edf3stTff7b72.Td2a8fflistsTb4b4b4(
Te6edf3stTff7b72.Td2a8fffloatsTb4b4b4(Te6edf3min_valueTff7b72=Tff7b72-T79c0ff4.0Tb4b4b4, Te6edf3max_valueTff7b72=T79c0ff4.0Tb4b4b4, Te6edf3allow_nanTff7b72=Tff7b72FalseTb4b4b4, Te6edf3allow_infinityTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4,
Te6edf3max_sizeTff7b72=T79c0ff2048Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3shapeTff7b72=Te6edf3stTff7b72.Td2a8ffsampled_fromTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffcolTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffrowTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffemptyTa5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8fftest_web_audio_sink_numpy_frame_never_propagatesTb4b4b4(Te6edf3valuesTb4b4b4, Te6edf3shapeTb4b4b4)Tb4b4b4:
Te6edf3loop Tff7b72= Te6edf3asyncioTff7b72.Td2a8ffnew_event_loopTb4b4b4(Tb4b4b4)
Te6edf3asyncioTff7b72.Td2a8ffset_event_loopTb4b4b4(Te6edf3loopTb4b4b4)
Te6edf3sent Tff7b72= Tb4b4b4[Tb4b4b4]

Tff7b72async Tff7b72def Td2a8ff_send_bytesTb4b4b4(Te6edf3dataTb4b4b4)Tb4b4b4:
Te6edf3sentTff7b72.Td2a8ffappendTb4b4b4(Te6edf3dataTb4b4b4)

Te6edf3sink Tff7b72= Te6edf3WebAudioSinkTb4b4b4(Te6edf3loopTb4b4b4, Te6edf3_send_bytesTb4b4b4)
Tff7b72if Te6edf3shape Tff7b72== Ta5d6ff"Ta5d6ffemptyTa5d6ff"Tb4b4b4:
Te6edf3arr Tff7b72= Te6edf3npTff7b72.Td2a8ffzerosTb4b4b4(Tb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4, Te6edf3dtypeTff7b72=Te6edf3npTff7b72.Td2a8fffloat32Tb4b4b4)
Tff7b72elif Te6edf3shape Tff7b72== Ta5d6ff"Ta5d6ffrowTa5d6ff"Tb4b4b4:
Te6edf3arr Tff7b72= Tb4b4b4(
Te6edf3npTff7b72.Td2a8ffarrayTb4b4b4(Te6edf3valuesTb4b4b4, Te6edf3dtypeTff7b72=Te6edf3npTff7b72.Td2a8fffloat32Tb4b4b4)Tff7b72.Td2a8ffreshapeTb4b4b4(T79c0ff1Tb4b4b4, Tff7b72-T79c0ff1Tb4b4b4)
Tff7b72if Te6edf3values
Tff7b72else Te6edf3npTff7b72.Td2a8ffzerosTb4b4b4(Tb4b4b4(T79c0ff1Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4, Te6edf3dtypeTff7b72=Te6edf3npTff7b72.Td2a8fffloat32Tb4b4b4)
Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3arr Tff7b72= Tb4b4b4(
Te6edf3npTff7b72.Td2a8ffarrayTb4b4b4(Te6edf3valuesTb4b4b4, Te6edf3dtypeTff7b72=Te6edf3npTff7b72.Td2a8fffloat32Tb4b4b4)Tff7b72.Td2a8ffreshapeTb4b4b4(Tff7b72-T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4)
Tff7b72if Te6edf3values
Tff7b72else Te6edf3npTff7b72.Td2a8ffzerosTb4b4b4(Tb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4, Te6edf3dtypeTff7b72=Te6edf3npTff7b72.Td2a8fffloat32Tb4b4b4)
Tb4b4b4)

Tff7b72with Te6edf3patchTb4b4b4(Ta5d6ff"Ta5d6ffmeshchatx.src.backend.web_audio_bridge.RNS.logTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3sinkTff7b72.Td2a8ffhandle_frameTb4b4b4(Te6edf3arrTb4b4b4, Tff7b72NoneTb4b4b4)
Te6edf3loopTff7b72.Td2a8ffrun_until_completeTb4b4b4(Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.05Tb4b4b4)Tb4b4b4)
Te6edf3loopTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)


Tf0883e@settingsTb4b4b4(Te6edf3max_examplesTff7b72=T79c0ff100Tb4b4b4, Te6edf3deadlineTff7b72=Tff7b72NoneTb4b4b4)
Tf0883e@givenTb4b4b4(Te6edf3rawTff7b72=Te6edf3stTff7b72.Td2a8ffbinaryTb4b4b4(Te6edf3max_sizeTff7b72=T79c0ff1024Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_web_audio_sink_bytes_frame_never_propagatesTb4b4b4(Te6edf3rawTb4b4b4)Tb4b4b4:
Te6edf3loop Tff7b72= Te6edf3asyncioTff7b72.Td2a8ffnew_event_loopTb4b4b4(Tb4b4b4)
Te6edf3asyncioTff7b72.Td2a8ffset_event_loopTb4b4b4(Te6edf3loopTb4b4b4)
Te6edf3sent Tff7b72= Tb4b4b4[Tb4b4b4]

Tff7b72async Tff7b72def Td2a8ff_send_bytesTb4b4b4(Te6edf3dataTb4b4b4)Tb4b4b4:
Te6edf3sentTff7b72.Td2a8ffappendTb4b4b4(Te6edf3dataTb4b4b4)

Te6edf3sink Tff7b72= Te6edf3WebAudioSinkTb4b4b4(Te6edf3loopTb4b4b4, Te6edf3_send_bytesTb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(Ta5d6ff"Ta5d6ffmeshchatx.src.backend.web_audio_bridge.RNS.logTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3sinkTff7b72.Td2a8ffhandle_frameTb4b4b4(Te6edf3rawTb4b4b4, Tff7b72NoneTb4b4b4)
Te6edf3loopTff7b72.Td2a8ffrun_until_completeTb4b4b4(Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.05Tb4b4b4)Tb4b4b4)
Te6edf3loopTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)


Tf0883e@pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffasyncio
Tf0883e@settingsTb4b4b4(Te6edf3max_examplesTff7b72=T79c0ff80Tb4b4b4, Te6edf3deadlineTff7b72=Tff7b72NoneTb4b4b4)
Tf0883e@givenTb4b4b4(
Te6edf3valuesTff7b72=Te6edf3stTff7b72.Td2a8fflistsTb4b4b4(
Te6edf3stTff7b72.Td2a8fffloatsTb4b4b4(Te6edf3min_valueTff7b72=Tff7b72-T79c0ff2.0Tb4b4b4, Te6edf3max_valueTff7b72=T79c0ff2.0Tb4b4b4, Te6edf3allow_nanTff7b72=Tff7b72FalseTb4b4b4, Te6edf3allow_infinityTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4,
Te6edf3max_sizeTff7b72=T79c0ff1024Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72async Tff7b72def Td2a8fftest_web_audio_sink_running_loop_numpy_never_propagatesTb4b4b4(Te6edf3valuesTb4b4b4)Tb4b4b4:
Te6edf3sent Tff7b72= Tb4b4b4[Tb4b4b4]

Tff7b72async Tff7b72def Td2a8ff_send_bytesTb4b4b4(Te6edf3dataTb4b4b4)Tb4b4b4:
Te6edf3sentTff7b72.Td2a8ffappendTb4b4b4(Te6edf3dataTb4b4b4)

Te6edf3sink Tff7b72= Te6edf3WebAudioSinkTb4b4b4(Te6edf3asyncioTff7b72.Td2a8ffget_running_loopTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3_send_bytesTb4b4b4)
Te6edf3arr Tff7b72= Tb4b4b4(
Te6edf3npTff7b72.Td2a8ffarrayTb4b4b4(Te6edf3valuesTb4b4b4, Te6edf3dtypeTff7b72=Te6edf3npTff7b72.Td2a8fffloat32Tb4b4b4)Tff7b72.Td2a8ffreshapeTb4b4b4(Tff7b72-T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4)
Tff7b72if Te6edf3values
Tff7b72else Te6edf3npTff7b72.Td2a8ffzerosTb4b4b4(Tb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4, Te6edf3dtypeTff7b72=Te6edf3npTff7b72.Td2a8fffloat32Tb4b4b4)
Tb4b4b4)
Tff7b72with Te6edf3patchTb4b4b4(Ta5d6ff"Ta5d6ffmeshchatx.src.backend.web_audio_bridge.RNS.logTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3sinkTff7b72.Td2a8ffhandle_frameTb4b4b4(Te6edf3arrTb4b4b4, Tff7b72NoneTb4b4b4)
Tff7b72await Te6edf3asyncioTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.05Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────